import { InMemoryCache } from "../utils/cach";

const cache = new InMemoryCache<number>(24 * 60 * 60 * 1000);

export async function fetchLotSize(ticker: string): Promise<number> {
    return cache.get(ticker, async () => {
      try {
          const response = await fetch(`https://iss.moex.com/iss/engines/stock/markets/shares/securities/${ticker}.json`);
          const json = await response.json();

          const lotSizeValue = json.securities.data[0][4]

          // Проверяем, является ли значение числом
          if (!isNaN(lotSizeValue)) {
              return lotSizeValue;
          } else {
              throw new Error('Не удалось получить корректное значение LOTSIZE');
          }
      } catch (error) {
          console.error('Ошибка при получении данных с сервера Moex:', error);
          throw error;
      }
    })
}